summaryrefslogtreecommitdiff
path: root/apps/web/src/app/editor/[project_id]
diff options
context:
space:
mode:
authorMaze Winther <mazewinther@gmail.com>2025-07-07 19:06:36 +0200
committerMaze Winther <mazewinther@gmail.com>2025-07-07 19:06:36 +0200
commitbd0c7f22069d1a2e4b2a2d962becaf6b9e942414 (patch)
tree595eb9b49f655f7c30b008065c26612077474a82 /apps/web/src/app/editor/[project_id]
parent11c0b89bd162fe0cb0633687fe5ad07977956ace (diff)
downloadopencut-bd0c7f22069d1a2e4b2a2d962becaf6b9e942414.tar.gz
refactor: store media relative to project, add storage for timeline data, and other things
Diffstat (limited to 'apps/web/src/app/editor/[project_id]')
-rw-r--r--apps/web/src/app/editor/[project_id]/page.tsx23
1 files changed, 18 insertions, 5 deletions
diff --git a/apps/web/src/app/editor/[project_id]/page.tsx b/apps/web/src/app/editor/[project_id]/page.tsx
index 8eee5e0a..011c0c60 100644
--- a/apps/web/src/app/editor/[project_id]/page.tsx
+++ b/apps/web/src/app/editor/[project_id]/page.tsx
@@ -1,6 +1,7 @@
"use client";
import { useEffect } from "react";
+import { useParams } from "next/navigation";
import {
ResizablePanelGroup,
ResizablePanel,
@@ -28,15 +29,27 @@ export default function Editor() {
setTimeline,
} = usePanelStore();
- const { activeProject, createNewProject } = useProjectStore();
+ const { activeProject, loadProject, createNewProject } = useProjectStore();
+ const params = useParams();
+ const projectId = params.project_id as string;
usePlaybackControls();
useEffect(() => {
- if (!activeProject) {
- createNewProject("Untitled Project");
- }
- }, [activeProject, createNewProject]);
+ const initializeProject = async () => {
+ if (projectId && (!activeProject || activeProject.id !== projectId)) {
+ try {
+ await loadProject(projectId);
+ } catch (error) {
+ console.error("Failed to load project:", error);
+ // If project doesn't exist, create a new one
+ await createNewProject("Untitled Project");
+ }
+ }
+ };
+
+ initializeProject();
+ }, [projectId, activeProject, loadProject, createNewProject]);
return (
<EditorProvider>